﻿using System.Collections.Generic;
using EnetaMvc.ApplicationServices.Dto;
using EnetaMvc.Infrastructure;

namespace EnetaMvc.ApplicationServices
{
    public interface IEventService
    {
        PagedResult<EventListDto> ListPublicEvents(int page, int pageSize);
        PagedResult<EventListDto> ListAllEvents(int page, int pageSize);
        EventDto GetEventById(long id);
        void SaveEvent(EventDto eventDto);
        void DeleteEvent(long id);

        IList<EventAttendeeDto> GetUserAttendings(long userId);
        bool IsAttendeeOfEvent(long eventId, long userId);
        void RegisterUserToEvent(long eventId, long userId, bool realEvent);
        void UnregisterFromEvent(long eventId, long userId);
    }
}
